<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Ajuste extends CI_Controller {

    public function __construct() {
        parent::__construct();
        session_start();
          $this->estaLogueado();
        $this->load->model('reservaM');
        $this->load->model('ajusteM');
        $this->load->model('impuestoM');
    }

    public function crearAjusteAlojamiento() {

        if (!empty($_POST["idReserva"]) && $this->validarReservaPost($_POST["idReserva"])) {
            $this->escapar($_POST);
            $this->ajusteM->crearAjuste($_POST["valorAjusteAlojamiento"], $_POST["descripcionAjusteAlojamiento"], $_POST["idReserva"], $_SESSION["usuario"]["id_usuario"], 'alojamiento');

            $idReserva = $_POST["idReserva"];
            $this->reservaM->quitarTotalHospedaje($idReserva);
            $valorTotalHospedaje = $this->reservaM->obtenerDatos("total_alojamiento", $idReserva);
            $valorTotalHospedaje = $valorTotalHospedaje[0]->total_alojamiento + $_POST["valorAjusteAlojamiento"];
            $this->reservaM->actualizarTotalHospedaje($valorTotalHospedaje, $idReserva);


            $impuestosPorAlojamiento = $this->reservaM->obtenerDatos("impuesto", $idReserva);
            $impuestosPorAlojamiento = $impuestosPorAlojamiento[0]->impuesto;
            if ($impuestosPorAlojamiento != 0) {
                $impuesto = $this->impuestoM->obtenerImpuestos($_SESSION["establecimiento"]["id_establecimiento"]);
                $valorImpuesto = $valorTotalHospedaje * $impuesto[0]->valor / 100;
                $valorTotalHospedaje = $valorTotalHospedaje + $valorImpuesto;
                $this->reservaM->actulizarImpuesto($valorImpuesto, $idReserva);
            }
            $idReserva = $_POST["idReserva"];
            $this->reservaM->actualizarTotalPagar($valorTotalHospedaje, $idReserva);
            $this->reservaM->actualizarEstatus($_POST["idReserva"]);
            $_SESSION["mensaje"]["contenido"] = "El ajuste se creó exitosamente";
            $_SESSION["mensaje"]["tipo"] = "exito";
            header("location:../facturacion?reserva=" . $_POST["idReserva"]);
        } else {
            $_SESSION["mensaje"]["contenido"] = "Error en la operación";
            $_SESSION["mensaje"]["tipo"] = "advertencia";
            header("Location:../calendario");
        }
    }

    public function crearAjusteTotal() {
        if (!empty($_POST["idReserva"]) && $this->validarReservaPost($_POST["idReserva"])) {
            $this->escapar($_POST);
            $this->ajusteM->crearAjuste($_POST["valorAjusteTotal"], $_POST["descripcionAjusteTotal"], $_POST["idReserva"], $_SESSION["usuario"]["id_usuario"], 'total');
            $this->reservaM->actualizarTotalPagar($_POST["valorAjusteTotal"], $_POST["idReserva"]);
            $this->reservaM->actualizarEstatus($_POST["idReserva"]);
            $_SESSION["mensaje"]["contenido"] = "El ajuste se creó exitosamente";
            $_SESSION["mensaje"]["tipo"] = "exito";
            header("location:../facturacion?reserva=" . $_POST["idReserva"]);
        } else {
            $_SESSION["mensaje"]["contenido"] = "Error en la operación";
            $_SESSION["mensaje"]["tipo"] = "advertencia";
            header("Location:../calendario");
        }
    }

    private function validarReservaPost($idReserva) {
        $r = $this->reservaM->esMiReserva($idReserva, $_SESSION['establecimiento']['id_establecimiento']);
        if ($r[0]->cantidad == 1) {
            return true;
        } else {
            return false;
        }
    }

}